home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2004 #6
/
Amiga Plus CD - 2004 - No. 06.iso
/
AmiSoft
/
Util
/
libs
/
ExtraLib.lha
/
Extra
/
include
/
rhosigma
/
settings.bc
< prev
next >
Wrap
Text File
|
2004-05-30
|
4KB
|
107 lines
' ___________________________________________________________________________
' |*************************************************************************|
' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
' |*| Set TAB to 4 for best readable file layout. |*| Maxon Basic 3.00 |*|
' |*|______________________________________________|*|____________________|*|
' |*************************************************************************|
' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
' |*| |*| $Id: settings.bc (18.04.03) |*|
' |*| ###### ###### |*| RhoSigma Source based on NDK 3.1 Includes 40.15 |*|
' |*| ## ## ## # |*| _________________________________________________ |*|
' |*| ## ## ## |*| |*|
' |*| ###### ## |*| Useful defines and extensions for NDK includes |*|
' |*| ## ## |*| |*|
' |*| ## ## # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
' |*| ## ###### |*| Copyright © 1998-2003 RhoSigma, Roland Heyder |*|
' |*| |*| All Rights Reserved. |*|
' |*|_______________|*|___________________________________________________|*|
' |*************************************************************************|
' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
'$UNDERLINES
'** enhanced booleans **
CONST UPPER% = 1 'Signum- und Wahrheitswerte zur
CONST EQUAL% = 0 'Verwendung in Variablen des
CONST LOWER% = -1 'Typs BOOL
'** for DisplayAlert() **
CONST DATPOS_C% = -1 'Text zentrieren
CONST DATPOS_L% = -2 'Text linksbündig
CONST DATPOS_R% = -3 'Text rechtsbündig
'*** rhosigma / DATEXT() ***
'============================================================================
' Diese Routine erstellt einen Teilstring des Parameterstrings der Intuition-
' Routine »DisplayAlert()«. Wahlweise kann der Text automatisch zentriert,
' oder links- bzw. rechsbündig ausgerichtet werden.
'----------------------------------------------------------------------------
' Definiert: settings.bc (Copyright © 1998-2003 RhoSigma, Roland Heyder)
'
' Schablone: xPos%/A/N, yPos%/A/N, Text$/A, EndFlag%/N/S
'
' Parameter: xPos% --> x-Position des Textes,
' oder einer der oben definierten DATPOS-Werte
'
' yPos% --> y-Position des Textes,
' Ausrichtung nach BaseLine des Fonts (topaz/8)
'
' Text$ --> der Text selbst als Variable oder Konstante
'
' EndFlag% --> - TRUE& , dann endet hier der Parameterstring
' - FALSE&, dann MUSS noch ein weiterer Teilstring
' (SUB-Aufruf) folgen.
'
' Bemerkung: Nach Aufruf der Routine für alle einzelnen Teilstrings finden
' Sie den fertigen Parameterstring in der Variable »daAlert$«,
' welche Sie an »DisplayAlert()« mittels »SADD(daAlert$)« über-
' geben müssen.
'
' Ein Beispiel für die Benutzung dieser Routine finden Sie in der
' Datei »demo/AlertDemo.BAS«.
'
' ACHTUNG: Sie dürfen in Ihrem Programm keine eigene Stringvariable mit
' ¯¯¯¯¯¯¯¯ dem Namen »daAlert$« verwenden, da diese unweigerlich durch
' dieses Unterprogramm überschrieben werden würde.
'
' Außerdem müssen Sie den Parameterstring immer unmittelbar vor
' dem »DisplayAlert()«-Aufruf definieren, da die Variable »daAlert$«
' jedesmal wieder überschrieben wird, und daher immer nur den zu-
' letzt erstellten Parameterstring enthält.
'============================================================================
SUB DATEXT(xPos%,yPos%,Text$,EndFlag%) STATIC
SHARED daAlert$
STATIC lFlag%
IF lFlag%<>0 THEN ' wird ein neuer ParamString angefangen,
lFlag%=0 ' dann »daAlert$« erst zurücksetzen
daAlert$=""
ELSE
lFlag%=EndFlag%
END IF
IF xPos%=DATPOS_C% THEN ' gewünschte Ausrichtung,
xPos%=(640-(LEN(Text$)*8))/2 ' falls angegeben
ELSEIF xPos%=DATPOS_L% THEN
xPos%=12
ELSEIF xPos%=DATPOS_R% THEN
xPos%=(640-(LEN(Text$)*8))-12
END IF
IF LEN(Text$)/2=INT(LEN(Text$)/2) THEN Text$=Text$+CHR$(32) 'für OS 1.3
daAlert$=daAlert$+MKI$(xPos%)+CHR$(yPos%)+Text$+CHR$(0) ' alles erstellen
IF EndFlag%=0 THEN ' wenn kein END-Flag, dann Continue-Byte
daAlert$=daAlert$+CHR$(1) ' setzen, ansonsten 0-Byte und Adresse
ELSE ' auf gerade setzen
daAlert$=daAlert$+CHR$(0)
WHILE SADD(daAlert$) AND 1
daAlert$=daAlert$+CHR$(0)
WEND
END IF
END SUB